
// RoughHillsGenerator2.h

// Declares the cRoughHillsGenerator2 representing a proof-of-concept generator of rough hills, second iteration

#pragma once

#include "ChunkGenerator.h"
#include "../Noise.h"





class cRoughHillsGenerator2 :
	public cChunkGenerator::cGenerator
{
	typedef cChunkGenerator::cGenerator super;
	
public:
	cRoughHillsGenerator2(cChunkGenerator & a_ChunkGenerator);
	virtual ~cRoughHillsGenerator2();
	
	virtual void Initialize(cWorld * a_World, cIniFile & a_IniFile) override;
	virtual void GenerateBiomes(int a_ChunkX, int a_ChunkZ, cChunkDef::BiomeMap & a_BiomeMap) override;
	virtual void DoGenerate(int a_ChunkX, int a_ChunkZ, cChunkDesc & a_ChunkDesc, cEntityList & a_Entities, cBlockEntityList & a_BlockEntities) override;
	
protected:
	class cHill;  // fwd: RoughHillsGenerator.cpp
	
	typedef std::list<cHill *> cHills;
	
	cHills m_Cache;
	int    m_Size;
	cNoise m_Noise;
	
	void GetHillsForChunk(int a_ChunkX, int a_ChunkZ, cHills & a_Hills);
} ;




